package com.example.mpandroidchartdemo;

import android.graphics.Color;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;

import java.util.ArrayList;
import java.util.List;

public class PieChartActivity extends AppCompatActivity {

    private PieChart mPieChart;
    private List<PieEntry> list = new ArrayList<>();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pie_chart_activity);
        mPieChart = findViewById(R.id.pie_chart);

        // 添加数据
        list.add(new PieEntry(35,"骑车"));
        list.add(new PieEntry(15,"走路"));
        list.add(new PieEntry(50,"地铁"));

        PieDataSet pieDataSet = new PieDataSet(list,"通勤方式");
        PieData pieData = new PieData(pieDataSet);
        mPieChart.setData(pieData);

        // 样式美化
        mPieChart.setBackgroundColor(Color.GRAY); // 设置图标背景颜色
        pieDataSet.setColors(Color.GREEN,Color.BLUE,Color.RED); // 各个块的颜色
        mPieChart.setHoleRadius(40); // 扇形中间空心圆半径 设置成0时就是一个圆 而不是一个环
        mPieChart.setTransparentCircleRadius(40); // 中间半透明白色圆的半径 设置成0时为隐藏
        mPieChart.setHoleColor(Color.WHITE); // 中心圆圈颜色
        mPieChart.setCenterText("通勤方式"); // 中心圆圈内的文字
        mPieChart.setCenterTextSize(20); // 文字大小
        mPieChart.setCenterTextColor(Color.RED); // 文字颜色
        mPieChart.setEntryLabelTextSize(18); // 设置描述文字大小 图中的 地铁/走路/骑车
        pieDataSet.setValueTextSize(18); // 设置数据文字大小 图中的50/35/15
        // 设置描述的位置 & 描述连接线长短
        pieDataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        pieDataSet.setValueLinePart1Length(0.6F);
        // 设置数据的位置 & 数据连接线的长短
//        pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
//        pieDataSet.setValueLinePart2Length(0.6F);

        // 图例
        Legend legend = mPieChart.getLegend();
        legend.setEnabled(true); // 是否显示图例
        legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER); // 图例位置
        legend.setTextSize(16); // 图例文字大小
        legend.setFormSize(12); // 图例大小

        // 数据更新
//        mPieChart.notifyDataSetChanged();
//        mPieChart.invalidate();

        // 动画
//        mPieChart.animateY(3000); // 旋转出整张图
//        mPieChart.animateX(3000);
        mPieChart.animateXY(3000,3000);
    }
}
